A blade enclosure is an enclosure that contains two or more computer motherboards commonly referred to as “blades.” Typically each blade in a blade enclosure includes one or more processors, main memory, one or more network interfaces and optionally some secondary storage such as one or more disk drives. Within a given blade enclosure, each blade shares cooling and power infrastructure with the other blades in the enclosure. By way of example, FIG. 1 illustrates a blade enclosure 100 according to the prior art. Blade enclosure 100 includes m blades 102, each of which may include a bus interface 104 and a network interface 106. The network interfaces of blades 102 may be connected to a network directly or indirectly, such as through an internal switch and/or router 108 as shown. Each of blades 102 may share certain enclosure resources such as power supply 110 and cooling system 112. An additional computing device, illustrated here as enclosure manager 114, provides administrative functionality necessary to manage the resources within the enclosure. Administrative software 116 runs on a processor of enclosure manager 114 for this purpose. Enclosure manager 114 is connected to each of blades 102 via an internal bus 118. Bus 118 may take any of a variety of conventional forms. In one embodiment, bus 118 was implemented using the well-known I2C protocol promulgated by the Philips Electronics Company, and bus interfaces 104 were I2C expander devices.
FIG. 2 illustrates a typical deployment for blade enclosures such as blade enclosure 100. Blade computer system 200 includes one or more client devices 202, one or more blade enclosures 100 and an allocation server 204, all in communication via a network 206. In such a system, allocation server 204 dynamically establishes a one-to-one mapping, as needed, between client devices 202 and individual blades 102 that are housed within blade enclosures 100. The configuration of FIG. 2 improves utilization of hardware relative to stand-alone computer deployments because individual blades need not be dedicated to a single user, but instead may be allocated to users dynamically as clients 202 become active and inactive. The result is that a given blade might provide processor and main memory resources to support the processes of client 1 for a time, and then later for client 2 when client 1 no longer needs those resources. Persistent data belonging to clients 1 and 2 may be retained in network storage devices (not shown) that are also coupled to network 206. The configuration of FIG. 2 delivers other advantages as well, such as easier system administration for blades 102 relative to the system administration that is required for distributed, stand-alone computers.
One difficulty in the design of blade enclosures 100 is the aggregate power consumption of and the heat generated by the blades that are housed within the blade enclosure.
By way of background, methods have been developed to reduce power consumption for stand-alone computers. One such method is called operating system-directed power management (“OSPM”) and is described in the well-known Advanced Configuration and Power Interface (“ACPI”) specification. OSPM/ACPI-compliant computers are capable of existing in a working state in which all system resources are powered on and are ready to perform useful work immediately, or in any one of a spectrum of sleeping states in which power consumption is reduced. The sleeping states are numbered S1 to S5. In sleeping state S1, for example, all system context and main memory contents are maintained so that the system may be returned to the working state with a minimal amount of latency. In sleeping state S5, on the other hand, no system context or main memory contents are maintained. From this state, a complete boot is required to return the system to the working state. In the intermediate sleeping state S3, system memory is maintained, but all other system context is lost. A system may be returned to the working state from S3 simply by resuming control at the processor's reset vector.
In an OSPM/ACPI-compliant computer, the local host operating system directs all system and device power state transitions. In such a computer, the local host operating system has complete discretion to place the computer into one of the sleeping states if it detects, for example, that certain resources of the computer have not been used for a predetermined period of time according to a local host timer. Alternatively, a human user may press a sleep button or a power-off button on the local host computer to induce the local host operating system to move the computer from the working state to one of the sleep states.
Although OSPM/ACPI achieves benefits for stand-alone computers normally attended by human users, the inventors hereof have discovered that it is not possible to apply the teachings of the ACPI specification directly to blade computers such as blades 102. This is so for a variety of reasons including the facts that blades 102 are not normally attended by human users and that each of blades 102 has its own operating system. If the teachings of the ACPI specification were applied directly to blade enclosure 100, then each of the blades 102 within the server would independently be able to place itself into one of the sleeping states at any arbitrary time. If this were to happen, then a subsequent request issued to a sleeping blade by enclosure manager 114 or by allocation server 204 would either not be acknowledged or would be acknowledged with such latency that enclosure manager 114 or allocation server 204 would conclude that the blade had malfunctioned or no longer existed. The result would be that the sleeping blade would cease to be used.